package com.zhang.boot.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhang.boot.core.entity.Menu;
import com.zhang.boot.core.entity.User;
import com.zhang.boot.core.vo.router.RouterVo;

import java.util.List;

public interface MenuService extends IService<Menu> {
    /**
     * 获取用户具有的权限列表
     *
     * @param user
     * @return
     */
    List<Menu> listByUser(User user);

    /**
     * 获取用户具有的权限列表
     *
     * @param userId 用户主键
     * @return
     */
    List<Menu> listByUserId(Integer userId);

    Menu getByMenuName(String menuName);


    /**
     * 获取用户菜单树
     *
     * @param user
     * @return
     */
    List<Menu> listTreeByUser(User user);

    /**
     * 将用户菜单树转换成前端路由样式
     *
     * @param menus
     * @return
     */
    List<RouterVo> buildMenus(List<Menu> menus);
}
